package com.hollysys.elapi.parser.core;


import com.hollysys.elapi.parser.common.ELNameEnum;
import com.hollysys.elapi.parser.common.ELTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

/**
 * elnode
 * 表达语言
 *
 * @author zhangrongyan
 * @date 2023/01/13
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ELNode {

    /**
     * 类型,必填
     *
     * @see ELTypeEnum
     */
    private String type;
    /**
     * 名字, type 是elType 时，必填
     *
     * @see ELNameEnum
     */
    private String name;
    /**
     * 条件节点id
     */
    private String conditionNodeId;
    /**
     * 别名节点id
     */
    private String aliasNodeId;
    /**
     * 数据
     */
    private String data;
    /**
     * 标签tag
     */
    private String tag;
    /**
     * 节点id, type 是 idType 时，必填
     */
    private String nodeId;
    /**
     * 子节点, type 是elType 时，必填
     */
    private List<ELNode> child = new ArrayList<>();
}
